package com.punch.course.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.punch.common.dto.course.ClassRoomDTO;
import com.punch.common.page.PageInfo;
import com.punch.common.vo.course.ClassRoomPageVO;
import com.punch.common.vo.course.ClassRoomVO;
import com.punch.common.vo.course.SimpleClassRoomVO;
import com.punch.course.model.PunchClassRoom;
import com.punch.course.query.ClassRoomQueryInfo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * ClassRoomService-教室信息 服务类
 *
 * @author xiaol
 * @version 1.0.0
 * @since 2020/7/22
 */
public interface ClassRoomService extends IService<PunchClassRoom> {
    /**
     * 条件分页查询教室列表
     *
     * @return 教室信息
     */
    PageInfo<ClassRoomPageVO> listClassRoom(ClassRoomQueryInfo queryInfo);

    /**
     * 保存教室信息
     *
     * @param classRoomDTO 教室信息
     * @return 教室记录id
     */
    Long saveClassRoom(ClassRoomDTO classRoomDTO);

    /**
     * 修改教室信息
     *
     * @param classRoomDTO 教室信息
     * @return 教室记录id
     */
    Long updateClassRoom(ClassRoomDTO classRoomDTO);

    /**
     * 删除教室信息
     *
     * @param classRoomId 教室ID
     */
    void deleteClassRoomById(Long classRoomId);

    /**
     * 查询教室信息详情
     *
     * @param classRoomId 教室记录ID
     * @return ClassRoomVO 教室详情
     */
    ClassRoomVO getClassRoomById(Long classRoomId);

    /**
     * 教室下拉列表
     *
     * @return List<SimpleClassRoomVO> 教室下拉列表
     */
    List<SimpleClassRoomVO> listClassRoomSimple(String classRoomName, Long classRoomId);

    /**
     * 教室启用/停用
     *
     * @param classRoomId 教室id
     */
    void enableClassRoom(Long classRoomId);

    /**
     * 教室导入
     *
     * @param file 文件
     * @return string
     */
    void importClassRoom(MultipartFile file);
}
